{% autoescape true %}

(escape_and_nl2br is an escaper filter)

1. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added, 
  the output is not escaped )
{{ var|escape_and_nl2br }}

2. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added, 
  the output is not escaped, |raw is redundant )
{{ var|escape_and_nl2br|raw }}

3. Explicit escape
( var is escaped by |escape_and_nl2br, line-breaks are added,
  the output is explicitly escaped by |escape )
{{ var|escape_and_nl2br|escape }}

4. Escape non-escaper filter output
( var is upper-cased by |upper,
  the output is auto-escaped )
{{ var|upper }}

5. Escape if last filter is not an escaper
( var is escaped by |escape_and_nl2br, line-breaks are added,
  the output is upper-cased by |upper,
  the output is auto-escaped as |upper is not an escaper )
{{ var|escape_and_nl2br|upper }}

6. Don't escape escaper filter output
( var is upper cased by upper,
  the output is escaped by |escape_and_nl2br, line-breaks are added,
  the output is not escaped as |escape_and_nl2br is an escaper )
{{ var|upper|escape_and_nl2br }}

7. Escape if last filter is not an escaper
( the output of |format is "<b>" ~ var ~ "</b>",
  the output is auto-escaped )
{{ "<b>%s</b>"|format(var) }}

8. Escape if last filter is not an escaper
( the output of |format is "<b>" ~ var ~ "</b>",
  |raw is redundant,
  the output is auto-escaped )
{{ "<b>%s</b>"|raw|format(var) }}

9. Don't escape escaper filter output
( the output of |format is "<b>" ~ var ~ "</b>",
  the output is not escaped due to |raw filter at the end )
{{ "<b>%s</b>"|format(var)|raw }}

10. Don't escape escaper filter output
( the output of |format is "<b>" ~ var ~ "</b>",
  the output is not escaped due to |raw filter at the end,
  the |raw filter on var is redundant )
{{ "<b>%s</b>"|format(var|raw)|raw }}

{% endautoescape %}
